package com.jxpanda.spring.module.auth.core.token;

import com.jxpanda.spring.module.auth.core.authentication.token.UserDetailsAuthenticationToken;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.oauth2.core.OAuth2Token;
import reactor.core.publisher.Mono;

public interface ReactiveOAuth2TokenGenerator<T extends OAuth2Token> {

    <U extends UserDetails> Mono<T> generate(UserDetailsAuthenticationToken<U> userDetailsAuthenticationToken);

}
